In some systems that use digital data, one portion of the digital system operates relative to a first clock signal while a second portion operates relative to a second clock signal. Typically, samples, which are sequences of bits sampled at times regulated by an associated clock signal, are to be passed between the first and second portions of the digital system. When frequencies of the first and second clock signals are different, sample rate conversion is used to convert samples having a sample rate defined by one clock signal into samples having a sample rate defined by another clock signal. One such sample rate conversion is called decimation, in which a decrease occurs in sample rate between portions (e.g., between the first and second portions) of the digital system.
Thus, decimation is used when a first clock frequency for the first portion is higher than a second clock frequency for the second portion, and when samples are to be passed from the first to the second portion. Decimation produces fewer samples at the second clock frequency, as compared to the number of samples at the first clock frequency. The process used to determine values for the second samples is usually interpolation. Interpolation typically involves both using values for first samples and a given conversion ratio in order to determine values for second samples.
Decimation using integer ratios (e.g., of the first and second clock frequencies or periods) is an everyday signal processing operation and can be performed without a decrease of signal-to-noise ratio (SNR), if all signal energy is below the new sampling frequency before the conversion. Also decimation using rational division of two integers can be also easily implemented by consecutive up-sampling and then down-sampling, but can be implemented with reasonable costs and good performance only for small integers. Irrational decimation is far more problematic, because there are no exact signal values available for each second sample and new second samples need to be interpolated between existing first samples.
While there are techniques to perform irrational decimation, many of these techniques have certain problems, e.g., an exact conversion ratio needs to be set beforehand. It would therefore be desirable to provide rate conversion techniques that overcome one or more of these problems.